package com.zmm.product.service;

import com.zmm.common.exception.handle.BusinessException;
import com.zmm.product.model.Product;
import com.zmm.product.vo.ProductVo;

import java.util.List;

/**
 * @author 900045
 * @description:
 * @name ProductService
 * @date By 2021-07-07 15:18:58
 */
public interface ProductService {
	
	/**
	 * 新增商品业务 -- 接口
	 * @author: 900045
	 * @date: 2021-07-07 15:19:52
	 * @throws BusinessException
	 * @param product: 
	 * @return: boolean
	 **/
	boolean addProduct(Product product) throws BusinessException;
	
	/**
	 * 根据商品ID 查询商品信息业务 -- 接口
	 * @author: 900045
	 * @date: 2021-07-07 15:51:53
	 * @throws 
	 * @param productId: 
	 * @return: com.zmm.product.model.Product
	 **/
	Product findOneProductByProductId(Integer productId);
	
	/**
	 * 审核商品状态业务 -- 接口
	 * @author: 900045
	 * @date: 2021-07-07 15:53:09
	 * @throws BusinessException
	 * @param auditState: 
	 * @param productId: 
	 * @return: boolean
	 **/
	boolean modifyProductAuditStatus(Integer auditState,Integer productId) throws BusinessException;

	/**
	 * 更新商品信息业务 -- 接口
	 * @author: 900045
	 * @date: 2021-07-07 16:35:55
	 * @throws BusinessException
	 * @param product: 
	 * @return: boolean
	 **/
	boolean modifyProduct(Product product) throws BusinessException;

	/**
	 * 根据商品ID 删除商品  -- 接口
	 * @author: 900045
	 * @date: 2021-07-07 16:43:45
	 * @throws BusinessException
	 * @param productId: 
	 * @return: boolean
	 **/
	boolean removeProductByProductId(Integer productId) throws BusinessException;

	/**
	 * 根据条件查询 商品列表 -- 接口
	 * @author: 900045
	 * @date: 2021-07-07 16:50:47
	 * @throws 
	 * @param productVo: 
	 * @return: java.util.List<com.zmm.product.model.Product>
	 **/
	List<Product> queryProductListByProductVo(ProductVo productVo);
}
